//简化编写并发和异步代码的工作的类型
using System.Threading.Tasks;
//linq表达式
using System.Linq;
//定义泛型集合的接口和类，可允许用户创建强类型集合
using System.Collections.Generic;

namespace MyApi.Repository
{
    public interface IRepository<T>
    {
        IQueryable<T> Table{get;}

        //根据Id获取实体对象
        T GetById(int id);

        //插入对象
        void Insert(T entity);

        //多线程异步插入数据
        Task InsertAsync(T entity);

        //批量插入数据
        void InsertBulk(IEnumerable<T> entites);

        //多线程异步批量插入数据
        Task InsertAsyncBulk(IEnumerable<T> entites);

        //更新对象
        void Update(T entity);

        //批量更新数据
        void UpdateBulk(IEnumerable<T> entites);

        //根据id删除数据
        void Delete(int id);
    }
}